home *** CD-ROM | disk | FTP | other *** search
/ Chip 1996 November / Chip 11-96.iso / treiber / grafik / datapat / twinor64 / win3x / blackole / bholes.mst < prev    next >
Text File  |  1996-04-28  |  11KB  |  390 lines

  1. '**************************************************************************
  2. '*                  Datapath Black Holes Setup Script
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9. '$INCLUDE 'msshared.inc'
  10.  
  11. '************************************************************
  12. '* Functions for reading/writing/checking registration
  13. '* details from the floppy-disk
  14. '************************************************************
  15. DECLARE FUNCTION dll_registered LIB "bhregist.dll" (szDll$) AS INTEGER
  16. DECLARE FUNCTION write_details LIB "bhregist.dll" (szDll$, szUser$, szComp$) AS INTEGER
  17. DECLARE FUNCTION checkstring LIB "bhregist.dll" (szName$) AS INTEGER
  18.  
  19. ''Dialog ID's
  20. CONST WELCOME       = 100
  21. CONST ASKQUIT       = 200
  22. CONST DESTPATH      = 300
  23. CONST EXITFAILURE   = 400
  24. CONST EXITQUIT      = 600
  25. CONST EXITSUCCESS   = 700
  26. CONST APPHELP       = 900
  27. CONST OPTHELP       = 1000
  28. CONST CHECK         = 2500
  29. CONST BADPATH       = 6400
  30. CONST CDCONFIRMINFO = 7300
  31. CONST CDGETNAMEORG  = 7500
  32. CONST CDBADNAME     = 7700
  33. CONST CDBADCOMP        = 7800
  34. CONST CDWRITEENABLE = 7900
  35.  
  36. ''Bitmap ID
  37. CONST LOGO = 1
  38.  
  39. GLOBAL DEST$            ''Default destination directory.
  40. GLOBAL WIN_DEST$        ''Default windows directory.
  41. GLOBAL WIN_SYS_DEST$    ''Default windows system directory.
  42.  
  43. GLOBAL USER_NAME$    ''User name for registration
  44. GLOBAL COMP_NAME$     ''Company name for registration
  45. GLOBAL DLL_NAME$    ''Name of DLL for registration
  46.  
  47. GLOBAL INST_SOUNDS$     ''Install WAV files
  48. GLOBAL INST_VISUALS$    ''Install visual warp effects
  49.  
  50. GLOBAL RETVAL%
  51. GLOBAL CURSORVAL%
  52.  
  53. '' Return values from dll_registered and write_details
  54. CONST SUCCESS = 0    '' return code for OK
  55. CONST FAILURE = 1    '' return code for not OK 
  56. CONST FATAL   = 2    '' return code for fatal error 
  57. CONST TRUE    = 1
  58. CONST FALSE   = 0
  59.  
  60. DECLARE SUB Install
  61. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  62.  
  63. INIT:
  64.  
  65.     CUIDLL$ = "instbh.dll"                ''Custom user interface dll
  66.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  67.  
  68.     SetBitmap CUIDLL$, LOGO
  69.     SetTitle "Datapath Black Holes Installation"
  70.  
  71.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  72.     IF szInf$ = "" THEN
  73.         szInf$ = GetSymbolValue("STF_CWDDIR") + "BHOLES.INF"
  74.     END IF
  75.     ReadInfFile szInf$
  76.  
  77.     DEST$ = "C:\BLACKOLE"
  78.     WIN_DEST$ = GetWindowsDir()
  79.     WIN_SYS_DEST$ = GetWindowsSysDir()
  80.     SERIAL_NO$ = "000001"
  81.  
  82. '$IFDEF DEBUG
  83.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  84.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  85.     IF IsDriveValid(WinDrive$) = 0 THEN
  86.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  87.         GOTO QUIT
  88.     END IF
  89. '$ENDIF ''DEBUG
  90.  
  91.  
  92. WELCOME:
  93.  
  94.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  95.     IF sz$ = "CONTINUE" THEN
  96.         UIPop 1
  97.     ELSE
  98.         GOSUB ASKQUIT
  99.         GOTO WELCOME
  100.     END IF
  101.  
  102.  
  103. GETPATH:
  104.     SetSymbolValue "EditTextIn", DEST$
  105.     SetSymbolValue "EditFocus", "END"
  106. GETPATHL1:
  107.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  108.     DEST$ = GetSymbolValue("EditTextOut")
  109.  
  110.     IF sz$ = "CONTINUE" THEN
  111.         IF IsDirWritable(DEST$) = 0 THEN
  112.             GOSUB BADPATH
  113.             GOTO GETPATHL1
  114.         END IF
  115.         UIPop 1
  116.     ELSEIF sz$ = "REACTIVATE" THEN
  117.         GOTO GETPATHL1
  118.     ELSEIF sz$ = "BACK" THEN
  119.         UIPop 1
  120.         GOTO WELCOME
  121.     ELSE
  122.         GOSUB ASKQUIT
  123.         GOTO GETPATH
  124.     END IF
  125.  
  126.  
  127.  
  128. '/*******************************************************************************
  129. '/*   Installation options - visual and sound effects
  130. '/*******************************************************************************
  131.  
  132. GETOPTIONS:    
  133.  
  134. '/* Default is to install visual and sound effects */
  135.     SetSymbolValue "CheckItemsIn", "ON"
  136.     AddListItem "CheckItemsIn", "ON"
  137.  
  138.     sz$ = UIStartDlg(CUIDLL$, CHECK, "FCheckDlgProc", OPTHELP, HELPPROC$)
  139.  
  140.     UIPop 1
  141.  
  142.     IF sz$ = "CONTINUE" THEN 
  143.     IF GetListItem ("CheckItemsOut", 1) = "OFF" THEN
  144.             INST_VISUALS$ = "NO"
  145.         ELSE
  146.             INST_VISUALS$ = "YES"
  147.         ENDIF
  148.     IF GetListItem ("CheckItemsOut", 2) = "OFF" THEN
  149.             INST_SOUNDS$ = "NO"
  150.         ELSE
  151.             INST_SOUNDS$ = "YES"
  152.         ENDIF
  153.         GOTO MAININSTALL
  154.     ELSEIF sz$ = "REACTIVATE" THEN
  155.         GOTO GETOPTIONS
  156.     ELSE
  157.         GOSUB ASKQUIT
  158.         GOTO GETOPTIONS
  159.     END IF
  160.  
  161.  
  162. '/********************************************************************************
  163. MAININSTALL:
  164.  
  165.     Install
  166.  
  167. QUIT:
  168.     ON ERROR GOTO ERRQUIT
  169.  
  170.     IF ERR = 0 THEN
  171.         dlg% = EXITSUCCESS
  172. '***************************************
  173. '**** CD INSTALLATION MODIFICATIONS ****
  174. '***************************************
  175. ' User details registration moved here because we cannot modify source dll on
  176. ' CD rom !.
  177. ' Only register if files successfully copied to disk.
  178. '/*******************************************************************************
  179. '/*  User details Registration
  180. '/*******************************************************************************
  181.  
  182. GETREG:
  183.  
  184.     CURSORVAL% = ShowWaitCursor()
  185.  
  186.     USER_NAME$ = ""
  187.     COMP_NAME$ = ""
  188.  
  189.     DLL_NAME$ = MAKEPATH(DEST$,"BLACKHOL.DLL")
  190.     RETVAL% = dll_registered (DLL_NAME$)
  191.  
  192.     RestoreCursor (CURSORVAL%)
  193.  
  194.     IF RETVAL% = SUCCESS THEN
  195.         GOTO GETOPTIONS
  196.     ENDIF
  197.  
  198.     IF RETVAL% = FATAL THEN
  199.     ERR = STFERR
  200.         GOTO QUIT
  201.     ENDIF
  202.  
  203. GETREGL1:
  204.  
  205.     SetSymbolValue "NameIn", USER_NAME$
  206.     SeTSymbolValue "OrgIn",  COMP_NAME$
  207.     SetSymbolValue "EditFocus", "END"
  208.  
  209.     sz$ = UIStartDlg(CUIDLL$, CDGETNAMEORG, "FNameOrgDlgProc", APPHELP, HELPPROC$)
  210.     USER_NAME$ = GetSymbolValue("NameOut")
  211.     COMP_NAME$ = GetSymbolValue("OrgOut")
  212.  
  213.     IF sz$ = "CONTINUE" THEN
  214.         IF checkstring (USER_NAME$) = FAILURE THEN
  215.             GOSUB BADNAME
  216.             UIPop 1
  217.             GOTO GETREGL1
  218.         ENDIF
  219.         IF checkstring (COMP_NAME$) = FAILURE THEN
  220.             GOSUB BADCOMP
  221.             UIPop 1
  222.             GOTO GETREGL1
  223.         ENDIF
  224.         UIPop 1
  225.         SetSymbolValue "ConfirmTextIn", USER_NAME$
  226.         AddListItem    "ConfirmTextIn", COMP_NAME$
  227.         sz$ = UIStartDlg (CUIDLL$, CDCONFIRMINFO, "FConfirmDlgProc", APPHELP, HELPPROC$)
  228.         UIPop 1
  229.         IF sz$ = "BACK" THEN
  230.             GOTO GETREGL1
  231.         ENDIF
  232. WRITELOOP: 
  233.         CURSORVAL% = ShowWaitCursor()
  234.         RETVAL% = write_details (DLL_NAME$, USER_NAME$, COMP_NAME$) 
  235.     RestoreCursor (CURSORVAL%)
  236.     IF RETVAL <> SUCCESS THEN
  237.             GOSUB BADWRITE
  238.             GOTO WRITELOOP
  239.         ENDIF
  240.     ELSEIF sz$ = "REACTIVATE" THEN
  241.         GOTO GETREGL1
  242.     ELSEIF sz$ = "BACK" THEN
  243.         UIPop 1
  244.         GOTO WELCOME
  245.     ELSE
  246.         GOSUB ASKQUIT
  247.         GOTO GETREG
  248.     END IF
  249.  
  250.     ELSEIF ERR = STFQUIT THEN
  251.         dlg% = EXITQUIT
  252.     ELSE
  253.         dlg% = EXITFAILURE
  254.     END IF
  255. QUITL1:
  256.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  257.     IF sz$ = "REACTIVATE" THEN
  258.         GOTO QUITL1
  259.     END IF
  260.     UIPop 1
  261.  
  262.     END
  263.  
  264. ERRQUIT:
  265.     i% = DoMsgBox("Setup sources were corrupted, call 555-1212!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  266.     END
  267.  
  268. BADPATH:
  269.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  270.     IF sz$ = "REACTIVATE" THEN
  271.         GOTO BADPATH
  272.     END IF
  273.     UIPop 1
  274.     RETURN
  275.  
  276. BADNAME:
  277.     sz$ = UIStartDlg(CUIDLL$, CDBADNAME, "FInfo0DlgProc", 0, "")
  278.     IF sz$ = "REACTIVATE" THEN
  279.         GOTO BADNAME
  280.     END IF
  281.     UIPop 1
  282.     RETURN
  283.  
  284. BADCOMP:
  285.     sz$ = UIStartDlg(CUIDLL$, CDBADCOMP, "FInfo0DlgProc", 0, "")
  286.     IF sz$ = "REACTIVATE" THEN
  287.         GOTO BADCOMP
  288.     END IF
  289.     UIPop 1
  290.     RETURN
  291.  
  292.  
  293. BADWRITE:
  294.     sz$ = UIStartDlg(CUIDLL$, CDWRITEENABLE, "FQuitDlgProc", 0, "")
  295.     IF sz$ = "EXIT" THEN
  296.         UIPopAll
  297.         ERROR STFQUIT
  298.     ELSE
  299.         UIPop 1
  300.     END IF
  301.     RETURN
  302.  
  303. ASKQUIT:
  304.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  305.  
  306.     IF sz$ = "EXIT" THEN
  307.         UIPopAll
  308.         ERROR STFQUIT
  309.     ELSEIF sz$ = "REACTIVATE" THEN
  310.         GOTO ASKQUIT
  311.     ELSE
  312.         UIPop 1
  313.     END IF
  314.     RETURN
  315.  
  316.  
  317.  
  318.  
  319. '**
  320. '** Purpose:
  321. '**     Builds the copy list and performs all installation operations.
  322. '** Arguments:
  323. '**     none.
  324. '** Returns:
  325. '**     none.
  326. '*************************************************************************
  327. SUB Install STATIC
  328.  
  329. '**     Remove old copy of BWCC.DLL from destination directory, if present
  330.         IF DoesFileExist (DEST$ + "\BWCC.DLL", femExists) THEN
  331.             RemoveFILE DEST$ + "\BWCC.DLL", cmoForce
  332.         ENDIF
  333.  
  334.     CreateDir DEST$, cmoNone
  335.     CreateDir DEST$ + "\WAVS", cmoNone
  336.     CreateDir DEST$ + "\FX_API", cmoNone
  337.  
  338.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  339.  
  340.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  341.         IF INST_VISUALS$ = "YES" THEN
  342.         AddSectionFilesToCopyList "visual_effects", SrcDir$, DEST$
  343.             AddSectionFilesToCopyList "fx_api",  SrcDir$, DEST$ + "\FX_API"         
  344.         ENDIF
  345.         IF INST_SOUNDS$ = "YES" THEN
  346.         AddSectionFilesToCopyList "wavs",    SrcDir$, DEST$ + "\WAVS"
  347.         ENDIF
  348.     
  349.     AddSectionFilesToCopyList "windows_system", SrcDir$, WIN_SYS_DEST$
  350.     AddSectionFilesToCopyList "windows", SrcDir$, WIN_DEST$
  351.     
  352.     CopyFilesInCopyList
  353.     
  354.     szGroup$ = "DATAPATH"
  355.     szPath$  = ""
  356.  
  357.     CreateProgmanGroup szGroup$,szPath$,cmoNone
  358.  
  359.     szItem$ = "Black Holes"
  360.     szCmd$    = MAKEPATH(DEST$,"BLACKOLE.EXE")
  361.     szOther$ = ""
  362.  
  363.     CreateProgmanItem szGroup$,szItem$,szCmd$,szOther,cmoOverwrite
  364.     
  365. END SUB 
  366.  
  367.  
  368. '**
  369. '** Purpose:
  370. '**     Appends a file name to the end of a directory path,
  371. '**     inserting a backslash character as needed.
  372. '** Arguments:
  373. '**     szDir$  - full directory path (with optional ending "\")
  374. '**     szFile$ - filename to append to directory
  375. '** Returns:
  376. '**     Resulting fully qualified path name.
  377. '*************************************************************************
  378. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  379.     IF szDir$ = "" THEN
  380.         MakePath = szFile$
  381.     ELSEIF szFile$ = "" THEN
  382.         MakePath = szDir$
  383.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  384.         MakePath = szDir$ + szFile$
  385.     ELSE
  386.         MakePath = szDir$ + "\" + szFile$
  387.     END IF
  388. END FUNCTION
  389.  
  390.